package UnitTestsConcurrentes;

import javax.swing.SwingUtilities;
import org.junit.Test;
import Entorno.Aplicacion;
import Entorno.Entorno;
import Misil.MisilEnemigo;
import Radar.Radar;
import Servidor.ServidorEnTierra;
import Utilidades.GUI_PanelDeRadar;
/**
 * @brief Unit test que muestra que los enemigos pueden chocarse entre ellos
 * @author Marcelo
 *
 */
public class ColisionEnemigos {
	static int puerto = 15001; // puerto para los sockets
	@Test
	public void test() throws InterruptedException {
		Entorno entorno = new Entorno();
		Radar radar = new Radar(entorno, puerto);
		ServidorEnTierra servidor = new ServidorEnTierra(entorno.getBaterias(),puerto);

		generarEnemigosParaQueChoquen(entorno);
		
		
		// Interfaz Grafica
		SwingUtilities.invokeLater(new GUI_PanelDeRadar(entorno));
		int tiempo = entorno.getTime();
		while (true) {
			tiempo = Aplicacion.pasarElTiempo(entorno, radar, servidor, tiempo);
			if (tiempo % 10 == 0) {
				radar.detectarYEnviar();
				servidor.procesarDatosRadar();
			}
		}
	}

	
	
	public static void generarEnemigosParaQueChoquen(Entorno entorno){
		// Enemigo 1
		double[] ubicacionEnemigo1 = new double[3];
		ubicacionEnemigo1[0] = -20000;
		ubicacionEnemigo1[1] = -40000;
		ubicacionEnemigo1[2] = 5000;
		MisilEnemigo enemy1 = (MisilEnemigo) entorno.generarMisilEnemigo(
				ubicacionEnemigo1, 86);
		double[] velocidadEnemigo1 = new double[3];
		velocidadEnemigo1[0] = 200;
		velocidadEnemigo1[1] = 400;
		velocidadEnemigo1[2] = 0;
		enemy1.getComportamiento().setVectorDeVelocidad(velocidadEnemigo1);
		
		
		// Enemigo 2
		double[] ubicacionEnemigo2 = new double[3];
		ubicacionEnemigo2[0] = 20000;
		ubicacionEnemigo2[1] = 40000;
		ubicacionEnemigo2[2] = 5000;
		MisilEnemigo enemy2 = (MisilEnemigo) entorno.generarMisilEnemigo(ubicacionEnemigo2, 86);
		double[] velocidadEnemigo2 = new double[3];
		velocidadEnemigo2[0] = -200;
		velocidadEnemigo2[1] = -400;
		velocidadEnemigo2[2] = 0;
		enemy2.getComportamiento().setVectorDeVelocidad(velocidadEnemigo2);
	}
	
}
